home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 17929 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  7.1 KB

  1. Path: news.nstn.ca!news
  2. From: dbshapco@fox.nstn.ca (dbshapco)
  3. Newsgroups: comp.lang.eiffel,comp.lang.c,comp.lang.c++,comp.object,comp.software-eng
  4. Subject: More OOA (was:Re: Beware of "C" Hackers -- A rebuttal to Bertrand Meyer)
  5. Date: 18 Apr 1996 04:31:01 GMT
  6. Organization: iSTAR Navigator User
  7. Message-ID: <4l4gi5$7qf@news.nstn.ca>
  8. References: <1995Jul3.034108.4193@rcmcon.com> <bksDoFwBA.Eut@netcom.com> <jmaling-2303960413010001@slwol1p47.ozemail.com.au> <4kkkbm$4ld@news4.digex.net> <4kku1gINN7me@keats.ugrad.cs.ubc.ca> <4kma54$11m@news4.digex.net> <goochb.334.0015B418@rwi.com> <4l3auv$jnt@onramp.arc.nasa.gov>
  9. Reply-To: dbshapco@fox.nstn.ca
  10. NNTP-Posting-Host: ts2-14.ott.istar.ca
  11. Mime-Version: 1.0
  12. X-Newsreader: WinVN 0.93.14
  13.  
  14. In article <4l3auv$jnt@onramp.arc.nasa.gov>, lamaster@viking.arc.nasa.gov 
  15. says...
  16. >
  17. >In article <goochb.334.0015B418@rwi.com>, 
  18. >goochb@rwi.com (William D. Gooch) writes:
  19. >
  20. >OTOH, it is interesting that it is in GUI/window development that 
  21. >O-O methods have been *generally* regarded (even by skeptics) as most 
  22. >successful.  So, perhaps, there is some significance after all to such 
  23. >correspondence.  At least, if what you care about is actual productivity,
  24. >rather than an O-O religious experience.  Now, in some applications,
  25. >the GUI is 99% of the app, but in others, I can assure you that it is
  26. >less than 1%.  It may simply be the case that O-O methods are more 
  27. >effective, pragmatically speaking, for the former case than for the
  28. >latter.  Why insist on applying the same techniques to every problem?
  29. >[cliche' of the day: "If the only tool you have is a hammer, 
  30. >everything looks like a nail."]
  31.  
  32. Software engineering lacks the conventionalized techniques and terminology 
  33. developed with centuries of practise in other fields such as architecture or 
  34. mechanical engineering, and often even the conventional terminology and 
  35. conceptual foundations that allow an architect to discuss with relative ease 
  36. the problems of live loading on a building structure with an engineer.
  37.  
  38. GUIs however seem to become one of those areas that are (now) highly 
  39. conventionalized and easy to analyze because the problem in fact was 
  40. decomposed into a metaphorical framework at Xerox Parc over a decade ago.  No 
  41. reasonably computer literate person needs the concept of a window explained 
  42. to them.
  43.  
  44. Often I've witnessed software development teams accepting the tandem problem 
  45. of decomposing an unconventional and original problem and learning new 
  46. techniques and technologies for doing so.  The novelty of both have negative 
  47. symbiotic effects on each other.  The relativity immaturity of software 
  48. engineering further complicates the task.  It is often difficult to 
  49. communicate the foundational concepts to team members of varying levels of 
  50. training and understanding, and managers and team leaders haven't the 
  51. experience to tailor roles, training and responsibilities appropriately.  
  52. This is a recipe for disaster, and the price of failed software projects, 
  53. cost overruns and late delivery is estimated in the Saganesque billions and 
  54. billions per year in North America.
  55.  
  56. GUIs by now are as much a cooked and 'toy' problem as those found in 
  57. introductory OO books -- there exist straightforward and automatic 
  58. decompositions of the problem into classes and class hierarchies, and in fact 
  59. many GUI frameworks representing pre-fab applications.  They possess another 
  60. attractive attribute -- they are highly visual and therefore susceptible to 
  61. the architectonic (~spatio-temporaral) analysis that many engineers, 
  62. mathematicians and computer scientists excel at (who tend to be the people 
  63. doing software development).
  64.  
  65. This does not mean that OOT fails at unconventional problems, but that many 
  66. fail to recognize that with such problems an extra step is involved in 
  67. decomposing the problem into appropriate elements at an appropriate level of 
  68. abstraction.  This happens in architecture, mathematics, science, engineering 
  69. and so on -- these fields usually just have frameworks handed down from 
  70. decades or centuries of practise, a legacy either software engineering 
  71. doesn't enjoy or isn't recognized by undertrained practioners.  Software 
  72. engineering is also an applied science, which requires appreciation of the 
  73. domain to which it is applied.  Most of us have so long used and played with 
  74. and programmed GUIs that we can consider ourselves de facto 'domain experts'. 
  75. Confronted with other domains, developers often fail to recongize the need 
  76. for this domain expertise.
  77.  
  78. What I find *consistently* are software teams that employ OOADP to describe a 
  79. linear, structured solution to their problem.  Having typically 1-12 years 
  80. experience solving problems in software their minds have been trained to 
  81. operate this way.  Like breaking away from any habit, those adopting OO are 
  82. going to find their technique suffers until OO becomes natural -- the new 
  83. habit replacing the old.  You can teach people all the OOADP you want, and 
  84. without integrating the new thinking into their work they can readily bend 
  85. all that teaching to developing and describing old-style solutions.  OOT can 
  86. only support, and not enforce, the new paradigms.  And BTW, OOADP introduces 
  87. awful and needless overhead and complexity into linear, structured software 
  88. solutions, so that people who abuse OO (as I said in an earlier post) come to 
  89. blame OO for introducing awful and needless overhead and complexity.  It is 
  90. fairly difficult to describe a blueprint for a building using calculus 
  91. notation or Lisp syntax, but that isn't a failing of calculus or Lisp.
  92.  
  93. The great divide in OO separates those who understand the notations, the 
  94. languages, and the jargon and those who've grokked the fundamental paradigm 
  95. shift (a la Kuhn).  This might actually get back to the subject that started 
  96. this thread an era ago: a mind trained to one paradigm (the, let us say 
  97. somewhat archetypal, C hacker) more strongly resists the new paradigm than 
  98. the tabula rasa.  I think that is Bertrand Meyer's hypothesis, and not an 
  99. established fact, and even if true the C hacker archetype also carries many 
  100. other skills and qualities that might outweigh this disadvantage.
  101.  
  102. Most people need to recover the architectonic thinking so natural to them and 
  103. discard training forced upon them by a more primitive level of technology.  
  104. Use Cases can be taught in a three day course, OMT a four day course, C++ or 
  105. Eiffel a four day course, but getting people to again trust themselves and 
  106. their natural patterns of thought after years of shoehorning their thinking 
  107. into unnatural patterns to accomodate the technology is bloody difficult 
  108. (IME).
  109.  
  110. OOT's power is that it supports natural ways for humans to reason about 
  111. problems, and by notation to communicate that reasoning to other humans in 
  112. reasonably natural form.  But all the computer still understands is opcodes, 
  113. and all technologies only add notational or expressive power *for the benefit 
  114. of humans*.  And I might claim that OO has higher general notational and 
  115. expressive power across a wider spectrum of domains than other technologies.
  116.  
  117.  
  118. -- 
  119. Brad Shapcott, Technical Consultant
  120. Lockheed-Martin's Advanced Concepts Center
  121. Ottawa, Canada (613) 592-8744 x227
  122.  
  123.